package com.offics.loan.application.dto.loan;

import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * 贷款申请请求
 */
@Data
public class LoanApplyRequest {

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    /**
     * 产品ID
     */
    @NotNull(message = "产品ID不能为空")
    private Long productId;

    /**
     * 贷款金额（单位：分）
     */
    @NotNull(message = "贷款金额不能为空")
    @Min(value = 1, message = "贷款金额必须大于0")
    private Long amount;

    /**
     * 贷款期限（单位：月）
     */
    @NotNull(message = "贷款期限不能为空")
    @Min(value = 1, message = "贷款期限必须大于0")
    private Integer period;

    /**
     * 贷款用途
     */
    @NotBlank(message = "贷款用途不能为空")
    private String purpose;

    /**
     * 银行卡ID
     */
    @NotNull(message = "银行卡ID不能为空")
    private Long bankCardId;
}